#ifndef __XLX_TCPSOCKET_H__
#define __XLX_TCPSOCKET_H__

typedef struct _TutuTcpCb{
    //收到来自服务器的数据
    void (*on_recv_data)(void * buf,int len);
    //连接服务器成功
    void (*on_connect_success)(void);
    //连接已经断开
    void (*on_disconnect)(void);
    //过滤包是否要存到离线，下次上线后继续可以发送
    //返回 1：保存到离线区，0：不保存
    char (*on_filter_pkg_tobackup)(char *buf,int len);
}TutuTcpCb;

//tcp连接接口
typedef struct _TuTuTcpSocket{
    //连接服务器
    void (*connect_server)(const char *szaddr,int port,TutuTcpCb *cb);
    //发送声控报警数据之外的普通数据
    char (*write)(const char *szdata,int len);
    //发送声控报警数据
    char (*write_audio)(const char *szdata,int len);
    //带发送的音频消息数
    int (*audio_msg_count)();
    //tcp队列待发送的音频包数
    int (*audio_queue_count)();
    //加载离线数据
    void (*load_offline_data)();
    //服务器是否连接成功。1:连接 0：未连接
    char (*is_connect)();
    //是否允许发送数据包到服务器，1：允许，0：不允许
    void (*allow_writing)(char allow);
    //不需要允许，可强制发送的数据
    char (*force_write)(const char *szdata,int len);
    //关闭连接
    void (*close_server)();
}TutuTcpSocket;

//初始化
void TutuTcpSocket_Init(TutuTcpSocket *myself);


#endif
